┗System∑Sec†ion┛

Home

MediaLog

Guestbook

Admin

Write

2011.06.27 09:52

[VIM] 명령어 정리

Essential Tools/VIM - Vi IMproved

[ 저장 및 종료 ]

[ex모드]

[설명]

:w

저장

:w file.txt

file.txt 파일로 저장

:w >> file.txt

file.txt 파일에 덧붙여서 저장

:q

vi 종료

:q!

vi 강제 종료

ZZ

저장 후 종료

:wq!

강제 저장 후 종료

:e file.txt

file.txt 파일을 불러옴

:e

현재 파일을 불러옴

[ 입력모드 전환 ]

[명령모드]

[설명]

[명령모드]

[설명]

a

커서 윈치 다음 칸부터 입력

A

커서 행의 맨 마지막부터 입력

i

커서의 위치에 입력

I

커서 행의 맨 앞에서부터 입력

o

커서의 다음 행에 입력

O

커서의 이전 행에 입력

s

커서 위치의 한 글자를 지우고 입력

S(cc)

커서 위치의 한 행을 지우고 입력

[ 이동 ]

[명령]

[설명]

[명령]

[설명]

H

왼쪽으로 이동(←)

l

오른쪽으로 이동(→)

j

아래 행으로 이동(↓)

k

위 행으로 이동(↑)

w or W

다음 단어의 첫 글자로 이동

b or B

이전 단어의 첫 글자로 이동

e or E

단어의 마지막 글자로 이동

<CR>

다음 행의 첫 글자로 이동

^

그 행의 첫 글자로 이동

$

그 행의 마지막 글자로 이동

+

다음 행의 첫 글자로 이동

-

위 행의 첫 글자로 이동

(

이전 문장의 첫 글자로 이동

)

다음 문장의 첫 글자로 이동

{

이전 문단으로 이동

}

다음 문단으로 이동

H

커서를 화면의 맨 위로 이동

z<CR>

현재 행을 화면의 맨 위로 이동

M

커서를 화면의 중앙으로 이동

z.

현재 행을 화면의 중앙으로 이동

L

커서를 화면 최하단으로 이동

z-

현재 행을 화면의 최하단으로 이동

[n]H

커서를 위에서 n행으로 이동

[n]L

커서를 아래에서 n행으로 이동

<Ctrl>+u

반 화면 위로 스크롤

<Ctrl>+d

반 화면 아래로 스크롤

<Ctrl>+b

한 화면 위로 스크롤

<Ctrl>+f

한 화면 아래로 스크롤

gg, 1G

문서의 맨 첫 행으로 이동

G

문서의 맨 마지막 행으로 이동

[n]G

n행으로 이동

:[n]<CR>

n행으로 이동

[ 삭제 ]

[명령모드]

[설명]

x, dl

커서 위치의 글자 삭제

X, dh

커서 바로 앞의 글자 삭제

dw

한 단어를 삭제

d0

커서 위치부터 행의 처음까지 삭제

D, d$

커서 위치부터 행의 끝까지 삭제

dd

커서가 있는 행을 삭제

dj

커서가 있는 행과 그 다음 행을 삭제

dk

커서가 있는 행과 그 앞 행을 삭제

[ 복사 & 붙이기 ]

[명령모드]

[설명]

[명령모드]

[설명]

yy

커서가 위치한 한 행 복사

p

붙여넣기

[n]yy

커서가 위치한 이후로 n행 복사

[n]p

n번만큼 붙여넣기 반복

[ 블록 지정 관련 ]

[명령]

[설명]

[명령]

[설명]

v

블록 지정

<Ctrl>+v

비쥬얼 블록 지정

~

대소문자 전환

d

삭제

y

복사

c

치환

>

행 앞에 탭 삽입

<

행 앞에 탭 제거

:

선택된 영역에 대하여 ex명령

J

행을 합침

U

대문자로 만듦

u

소문자로 만듦

[ 문자열 탐색 및 치환 ]

[ex모드]

[설명]

/[문자열]

문자열을 탐색

:s/old/new

현재 행의 처음 old를 new로 교체

:s/old/new/g

현재 행의 모든 old를 new로 교체

:10,20s/old/new/g

10행부터 20행까지 모든 old를 new로 교체

:-3,+4s/old/new/g

현재 커서 위치에서 3행 위부터 4행 아래까지 old를 new로 교체

:%s/old/new/g

문서 전체에서 old를 new로 교체

:%s/old/new/gc

문서 전체에서 old를 new로 확인하며 교체

:g/pattern/s//new/g

:%s/old/new/g와 동일

[ vim 정규 표현식 ]

[메타문자]

[설명]

[메타문자]

[설명]

^

행의 첫 문자([]안에서는 not의 의미)

$

행의 끝

.

아무 문자나 한 문자 의미

\|

or의 의미

[ ]

[]사이의 문자 중 하나

\{min,max\}

min 이상 max 이하 반복됨

*

앞의 내용이 0번 이상 반복됨

\+

앞의 내용이 1번 이상 반복됨

\<

단어의 시작

\>

단어의 끝

\n

새 행 문자

\t

탭 문자

[ vim 확장 정규 표현 문자열 ]

[이스케이프]

[설명]

\i (소문자 아이)

변수 지정에 사용되는 문자들 [_0-9A-Za-z]

\I (대문자 아이)

\i와 같지만 숫자는 제외

\k

keyword로 사용하는 문자 [_\.\-0-9A-Za-z]

\K

\k와 같지만 숫자는 제외

\f

파일 이름으로 사용하는 문자

\F

\f와 같지만 숫자는 제외

\p

프린트 가능한 문자

\P

\p와 같지만 숫자는 제외

\s

whitespace character(공백과 탭)

\S

non-whitespace character

\d

숫자 [0-9]

\D

숫자가 아닌 문자 [^0-9]

\x

16진수 숫자 [0-9A-Fa-f]

\X

16진수 숫자가 아닌 문자 [^0-9A-Fa-f]

\o

8진수 숫자 [0-7]

\O

8진수 숫자가 아닌 문자 [^0-7]

\w

영문 단어에서 사용되는 문자 [0-9A-Za-z-]

\W

영문 단어에서 사용되지 않는 문자 [^0-9A-Za-z-]

\h

영문 단어의 시작에 사용되는 문자 [A-Za-z-]

\H

영문 단어의 시작에 사용되지 않는 문자 [^A-Za-z-]

\a

모든 알파벳 [A-Za-z]

\A

알파벳이 아닌 문자 [^A-Za-z]

\l (소문자 엘)

소문자 [a-z]

\L

소문자가 아닌 문자 [^a-z]

\u

대문자 [A-Z]

\U

대문자가 아닌 문자 [^A-Z]

\e

<ESC>

\t

<TAB>

\r

캐리지 리턴 (CR)

\b

백스페이스(BS)

\n

새 행(LF)

[ POSIX 문자 클래스 ]

[문자 클래스]

[내용]

[:alnum:]

알파벳과 숫자 [A-Za-z0-9]

[:alpha:]

알파벳 [A-Za-z]

[:cntrl:]

제어 문자

[:blank:]

탭과 공백 문자

[:digit:]

숫자 [0-9]

[:graph:]

제어 문자와 공백 문자를 제외한 문자

[:lower:]

소문자 [a-z]

[:upper:]

대문자 [A-Z]

[:print:]

제어 문자를 제외한 문자. 즉 프린터 할 수 있는 문자

[:punct:]

[:graph:] 문자 중 [:alnum:]을 제외한 문자. (ex: !, @, #, $, %, ^....)

[:space:]

화이트 스페이스 (ex: 공백, 탭, 캐리지 리턴, 새 행, 수직 탭, 폼 필드)

[:xdigit:]

16진수

[ 파일 버퍼 관련 명령 요약 ]

[ex모드]

[설명]

:buffers

버퍼의 내용을 나열

:files or :ls

버퍼의 내용을 나열

:b[n]

n번 버퍼로 이동

:bd[N]

n 버퍼를 삭제(n이 없으면 현재의 버퍼를 완전 삭제)

:bw[n]

n 버퍼를 완전 삭제(n이 없으면 현재의 버퍼를 완전 삭제)

:bp[n]

이전 버퍼로 이동. n을 붙이면 n번만큼 이전 버퍼로 이동

:bn[n]

이후 버퍼로 이동. n을 붙이면 n번만큼 이후 버퍼로 이동

:sb[n]

창을 수평 분할하여 n번 버퍼를 로드

:bf

첫 번째 버퍼로 이동

:bl

마지막 버퍼로 이동

:al

현재 열려 있는 모든 버퍼를 수평 분할 창에 로드

[ 마킹 및 마킹한 위치로 이동 ]

[명령모드]

[설명]

[명령모드]

[설명]

ma

a로 마킹, mb는 b로 마킹...

`a

a로 마킹된 위치로 돌아감

'a

a로 마킹된 행의 처음으로 돌아감

' '

직전에 커서가 위치하던 행의 처음

` `

진전의 커서 위치로 이동

' "

이전에 vim으로 현재 파일을 닫았을 때 커서가 있던 행의 처음으로 이동

` "

이전에 vim으로 현재 파일을 닫았을 때 커서가 있던 위치로 이동

[ 다중 창 관련 명령 ]

-[ 창 생성 ]-

[명령모드]

[ex모드]

[결과]

<Ctrl>+w s

:sp[plit]

현재 파일을 두 개의 수평 창으로 나눔

<Ctrl>+w v

:[n]vs[plit]

새로운 수직 창 생성, n이 붙으면 n칸 크기의 창 분할

<Ctrl>+w n

:new

새로운 수평 창 생성

<Ctrl>+w ^

수평 창으로 나누고 이전 파일의 오픈

<Ctrl>+w f

창을 수평으로 나누고 커서 위치의 파일을 오픈

<Ctrl>+w i

커서 위치의 단어가 정의된 파일을 오픈

-[ 창 삭제 ]-

<Ctrl>+w q

:q[uit]!

현재 커서의 창을 종료

<Ctrl>+w c

:clo[se]

현재 커서의 창을 닫음

<Ctrl>+w o

:on[ly]

현재 커서의 창만 남기고 모든 창 삭제

-[ 창 이동 ]-

<Ctrl>+wh

왼쪽 창으로 커서 이동

<Ctrl>+wj

아래쪽 창으로 커서 이동

<Ctrl>+wk

위쪽 창으로 커서 이동

<Ctrl>+wl

오른쪽 창으로 커서 이동

<Ctrl>+ww

창을 순차적으로 이동

<Ctrl>+wp

가장 최근에 이동한 방향으로 이동

<Ctrl>+wt

최상위 창으로 이동

<Ctrl>+wb

최하위 창으로 이동

-[ 창 위치 바꾸기 ]-

<Ctrl>+wr

순차적으로 창의 위치를 순환

<Ctrl>+wx

이전 창과 위치를 바꿈

-[ 창 크기 조정 ]-

<Ctrl>+w =

창의 크기를 모두 균등하게 함

<Ctrl>+w _

수평 분할에서 창의 크기를 최대화

<Ctrl>+w |

수직 분할에서 창의 크기를 최대화

<Ctrl>+w [n]+

:res[ize] +n

창의 크기를 n행만큼 증가 (Ctrl+w +는 1행만큼 증가)

<Ctrl>+w [n]-

:res[ize] -n

창의 크기를 n행만큼 감소 (Ctrl+w -는 1행만큼 증가)

<Ctrl>+w [n]>

창의 크기를 오른쪽으로 n칸만큼 증가(수직 창에 한함)

<Ctrl>+w [n]<

창의 크기를 왼쪽으로 n칸만큼 증가(수직 창에 한함)

[ ctags 관련 명령 ]

[ex모드]

[설명]

:ta [tag] or <Ctrl>+]

[tag]가 정의된 위치를 나열하고 선택한 위치로 점프. 현재 위치는 stack에 push된다.

:ts [tag] or :서 [tag]

:po or <Ctrl>+t

stack top에 저장된 위치를 pop하고 그 위치로 점프

:sts [tag]

[tag]가 정의된 위치를 나열하고 선택한 위치로 창을 수평 분할하여 새로 생성된 창에 표시

:stj [tag]

:tn

tj나 ts로 점프했을 때 다음 tag로 점프

:tp

tj나 ts로 점프했을 때 이전 tag로 점프

:tr

tj나 ts로 점프했을 때 처음 tag로 점프

:tl

tj나 ts로 점프했을 때 마지막 tag로 점프

:pts [tag]

[tag]가 정의된 위치를 나열하고 선택한 위치로 창을 수평 분할하여 새로 생성된 창에 표시하지만 커서는 현재 위치에 유지

:ptj [tag]

미리보기 윈도우에 tag가 정의된 형식을 보임

:ptn

ptj나 pts로 점프했을 때 다음 tag로 점프

:ptp

ptj나 pts로 점프했을 때 이전 tag로 점프

:ptr

ptj나 pts로 점프했을 때 처음 tag로 점프

:ptl

ptj나 pts로 점프했을 때 마지막 tag로 점프

[ cscope 관련 명령 ]

:cs find {질의 종류} {심볼}
ex_) :cs find s start_kernel

0 or s

이 C symbol 찾기

1 or g

이 정의 찾기

2 or d

이 함수에 의해 불려지는 함수들 찾기

3 or c

이 함수를 부르는 함수들 찾기

4 or t

Find assignments to

6 or e

이 egrep 패턴 찾기

7 or f

이 파일 찾기

8 or i

이 파일을 포함하는 파일들 찾기

'Essential Tools > VIM - Vi IMproved' 카테고리의 다른 글

Vim 편집기로 스크립트 작성하기  (0) | 2011.09.23
[VIM Plugin] T-Commant  (0) | 2011.09.22
[VIM Plugin] snipMate  (0) | 2011.09.22
[VIM] 명령어 정리  (0) | 2011.06.27
[VIMRC] Personal Vim Initializations (개인 환경 설정)  (0) | 2009.12.20

Posted by devanix

TAGvi, vi 명령, VIM, vim 명령어

trackback 0 comment 0

트랙백 주소 - http://devanix.tistory.com/trackback/170

이전12345 다음

home tag media location guest admin write

Total 416,638

Today 90

Yesterday 389

가입하기  RSS FEED
devanix blog is powered by Daum / designed by Tistory

devanix

카테고리

U&L Developer˚ε♡з。 (230)

예제 코드 & 코드 조각 (6)

Programming (31)

C (7)

Python (17)

Shell Script (6)

API 및 라이브러리 (26)

MySQL C API (7)

C 라이브러리 함수 (19)

Unix & Linux (33)

설치 및 활용 (6)

문제 해결 (2)

General Commands (8)

Linux Programming (7)

Essential Tools (12)

VIM - Vi IMproved (5)

Network (2)

DBMS(Database) (4)

컴퓨터 서적 정리 (69)

Binary Hacks (21)

Ubuntu Linux Toolbox (41)

좋은 프로그래밍 습관 (7)

컴퓨터 문서 모음 (8)

유닉스 & 리눅스 (2)

네트워크 프로그래밍 (4)

시스템 프로그래밍 (2)

워게임(WarGame) (38)

BOF원정대(LOF) (22)

PythonChallenge (16)

태그목록

tail 파일 덤프 CURL ubuntu Linux WarGame 오브젝트 파일 APT Binary Hacks dpkg atexit deb IT 서적 mysql c api LinkedList fstat BOF 원정대 공유 라이브러리 pythonchallenge archive 파이썬 vi 역어셈블 MD5 python challenge Python GCC objdump readelf uname md5sum 빌트인 VIM dump 정적 라이브러리 lstat vim plugin bzip2 패키지 관리 aptitude

글 보관함

2012/03 (1)

2011/12 (2)

2011/11 (10)

2011/10 (11)

2011/09 (20)

최근에 올라온 글

우분투(Ubuntu)에서...

ftplib(FTP protoco...

넷캣(Netcat) 간단... (1)

파이썬 – 날짜시간...

파이썬 – 시간(tim...

공지사항

티스토리 초대장 배포 합니다(4장)

링크

The Linux Cross Re...

The C++ Resources...

SoftPedia.

Simples (심플스).

GNU Manuals Online.

tuhs.

달력

201602  이전달 다음달

« 2016/02 »

일 | 월 | 화 | 수 | 목 | 금 | 토
| 1 | 2 | 3 | 4 | 5 | 6
7 | 8 | 9 | 10 | 11 | 12 | 13
14 | 15 | 16 | 17 | 18 | 19 | 20
21 | 22 | 23 | 24 | 25 | 26 | 27
28 | 29 | | | | |

티스토리 툴바

Daum

Tistory

로그인